package com.bjpowerrnode.javase.date;

import java.text.SimpleDateFormat;
import java.util.Date;

/*
java中对日期的处理:
    知识点1：怎么获取系统当前时间。
    知识点2：怎么将Date数据转换成指定格式的字符串数据
    知识点3：怎么将字符串时间数据转换成Date数据。

 */
public class DateTest01 {
    public static void main(String[] args)throws Exception {

        //获取精确到毫秒的系统当前时间
        //直接调用无参数构造方法即可
        Date nowTime = new Date();
        //java.util.Date类的toString()方法已经被重写了，输出的不是内存地址，而是时间
        System.out.println(nowTime);

        //日期可以格式化吗？
        //将日期类型Date，按照指定的格式进行转换，将Date转换成指定格式的字符串数据。
        //SimpleDateFormat是java.text包下的，专门负责日期格式化到的
        /*
        yyyy 年(年是四位)
        MM 月(月是两位)
        dd 日
        HH 时
        mm 分
        ss 秒
        SSS 毫秒(毫秒是3位，最高999,1000毫秒是1秒)
        注意：在日期格式中，除了Y y M d H M m s S这些字符不能随便写之外，剩下的字符格式随便组织。
         */
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        String nowTimeSDF = sdf.format(nowTime);
        System.out.println(nowTimeSDF);

        //假设现在有一个日期字符串String，怎么转换成Date类型？
        String time = "2008-08-08 08:08:08 888";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");//格式不能随便写，要和日期字符串格式相同
        Date date = sdf2.parse(time);
        System.out.println(date);//Fri Aug 08 08:08:08 CST 2008
    }
}
